package com.ruoyi.training.mapper;

import java.util.List;
import com.ruoyi.training.domain.TrainingSchedule;

/**
 * 培训计划明细（单节课程/活动）Mapper接口
 *
 * @author WorrilessGo
 * @date 2025-09-24
 */
public interface TrainingScheduleMapper
{
    /**
     * 查询培训计划明细（单节课程/活动）
     *
     * @param trainingScheduleId 培训计划明细（单节课程/活动）主键
     * @return 培训计划明细（单节课程/活动）
     */
    public TrainingSchedule selectTrainingScheduleByTrainingScheduleId(String trainingScheduleId);

    /**
     * 查询培训计划明细（单节课程/活动）列表
     *
     * @param trainingSchedule 培训计划明细（单节课程/活动）
     * @return 培训计划明细（单节课程/活动）集合
     */
    public List<TrainingSchedule> selectTrainingScheduleList(TrainingSchedule trainingSchedule);

    /**
     * 新增培训计划明细（单节课程/活动）
     *
     * @param trainingSchedule 培训计划明细（单节课程/活动）
     * @return 结果
     */
    public int insertTrainingSchedule(TrainingSchedule trainingSchedule);

    /**
     * 修改培训计划明细（单节课程/活动）
     *
     * @param trainingSchedule 培训计划明细（单节课程/活动）
     * @return 结果
     */
    public int updateTrainingSchedule(TrainingSchedule trainingSchedule);

    /**
     * 删除培训计划明细（单节课程/活动）
     *
     * @param trainingScheduleId 培训计划明细（单节课程/活动）主键
     * @return 结果
     */
    public int deleteTrainingScheduleByTrainingScheduleId(String trainingScheduleId);

    /**
     * 批量删除培训计划明细（单节课程/活动）
     *
     * @param trainingScheduleIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTrainingScheduleByTrainingScheduleIds(String[] trainingScheduleIds);

    /**
     * 批量新增培训计划明细（单节课程/活动）
     * lqx
     * @param trainingSchedules 培训计划明细（单节课程/活动）列表
     * @return 结果
     */
    public int batchInsertTrainingSchedule(List<TrainingSchedule> trainingSchedules);

    /**
     * 根据班级ID删除所有记录
     * @param classId 班级ID
     * @return 删除的记录数
     */
    public int deleteByClassId(String classId);

    /**
     * 通过班级ID查询培训计划列表
     * lqx
     * @param trainingClassId 班级ID
     * @return 培训计划列表
     */
    public List<TrainingSchedule> selectByClassId(String trainingClassId);
}
